package com.icode.function;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

/**
 * @Author: my_code
 * @Email: my_code@foxmail.com
 * @Create: 2020-12-13 16:32
 * <p>
 * 函数式接口：
 * 1. 转换型
 *      Function：一个泛型输入参数，一个泛型返回参数
 * 2. 断言型
 *      Predicate：一个泛型参数，返回布尔值
 * 3. 消费型：
 *      Consumer：只有输入，没有返回值
 * 4. 生产型
 *      Supplier：没有输入，有返回值
 */
public class Demo1 {

    public static void main(String[] args) {

        Function<String, String> function = s -> "result:" + s;
        String word = "abc";
        System.out.println("输入"+ word + "   输出："+function.apply(word));

        Predicate<String> predicate = str -> str.isEmpty();
        System.out.println("断言结果：" + predicate.test(""));

        Consumer<String> consumer = str -> System.out.println("打印：" + str);
        consumer.accept("consumer");

        Supplier<String> dateSupplier = () -> new SimpleDateFormat("HH：mm：ss").format(new Date());;
        System.out.println("当前时间：" + dateSupplier.get());

    }
}
